전환 시에는 PyTorch 즉시 실행 모드 에서 Triton 텐서를 단일 객체로 보는 관점을 블록 또는 타일 형태의 분리되고 조작 가능한 집합으로 보는 것으로 전환해야 합니다. 블록 또는 타일로 보는 것입니다.
1. PyTorch와 Triton 텐서의 비교
다음 두 가지를 구분하는 것이 중요합니다: Triton 텐서 과 PyTorch 텐서. PyTorch 텐서는 호스트 측 파이썬 객체 형태, 데이터 유형, 장치, 스트라이드 및 저장 메타데이터를 포함한 객체입니다. 반면, Triton은 특정 메모리 블록 내의 원시 데이터 포인터 를 사용하여 매우 낮은 수준의 최적화가 가능합니다.
2. 즉시 실행의 성능 저하 문제
기본적인 즉시 실행 방식에서는 모든 연산(예: 덧셈 후 리유럴)마다 별도의 커널 시작과 글로벌 메모리 주고받기가 필요합니다. 이는 현대 그래픽 처리 장치(GPU) 계산에서 가장 큰 성능 저하 요인입니다. Triton은 하나의 커널 내에서 연산을 융합함으로써 블록 단위의 데이터(예: 128, 256, 또는 512개 원소)를 직접 내부 메모리에서 처리하는 방식으로 이를 극복합니다.
3. 블록 기반 사고 방식
CUDA 스레드의 스칼라 수준 사고 방식이 아니라, Triton은 SPMD(Single Program, Multiple Data) 블록 수준에서 작동합니다. 하나의 커널만 작성하면, Triton은 격자에 걸쳐 여러 인스턴스를 동시에 시작합니다. 각 인스턴스는 자신의 program_id 를 사용하여 자신이 소유하고 있는 '조각' 메모리 영역을 계산합니다.
4. 환경 설정
시작하기 위해, 정리된 환경에서 Triton을 설치 (Conda 또는 venv 사용) 기존의 CUDA 도구 키트와의 의존성 충돌을 피하기 위해: pip install triton.